Create a buffer in init() so subclasses can use the entry in their init()
authorMichael Natterer <mitch@gimp.org>
Fri, 10 Jul 2009 18:27:33 +0000 (20:27 +0200)
committerMichael Natterer <mitch@gimp.org>
Fri, 10 Jul 2009 18:27:33 +0000 (20:27 +0200)
gtk/gtkentry.c

index f147b3f16dd6a7501615cf68e5246ee8d82c7013..de10f0d8348bba74735454c33b02a5455a75084a 100644 (file)
@@ -2280,7 +2280,8 @@ static void
 gtk_entry_init (GtkEntry *entry)
 {
   GtkEntryPrivate *priv = GTK_ENTRY_GET_PRIVATE (entry);
-  
+  GtkEntryBuffer *buffer;
+
   GTK_WIDGET_SET_FLAGS (entry, GTK_CAN_FOCUS);
 
   entry->editable = TRUE;
@@ -2318,6 +2319,14 @@ gtk_entry_init (GtkEntry *entry)
                    G_CALLBACK (gtk_entry_retrieve_surrounding_cb), entry);
   g_signal_connect (entry->im_context, "delete-surrounding",
                    G_CALLBACK (gtk_entry_delete_surrounding_cb), entry);
+
+  /* need to set a buffer here, so GtkEntry subclasses can do anything
+   * in their init() functions, just as it used to be before
+   * GtkEntryBuffer
+   */
+  buffer = gtk_entry_buffer_new (NULL, 0);
+  gtk_entry_set_buffer (entry, buffer);
+  g_object_unref (buffer);
 }
 
 static gint